home *** CD-ROM | disk | FTP | other *** search
/ ADA Programming Guide / ADA Programming Guide.iso / ada_pcdp / adas / fourth.ada < prev    next >
Text File  |  1996-01-30  |  837b  |  46 lines

  1. with Text_IO; use Text_IO;
  2. procedure Fourth is
  3.   pragma Time_Slice(0.01);
  4.  
  5.   C1, C2: Integer := 1;
  6.   pragma Volatile(C1);
  7.   pragma Volatile(C2);
  8.  
  9.   task T1;
  10.   task body T1 is
  11.   begin
  12.     loop
  13.       Put_Line("Task 1 idling");
  14.       C1 := 0;
  15.       loop 
  16.         exit when C2 /= 0; 
  17.         C1 := 1;
  18.         Put_Line("Task 1 reset variable");
  19.         C1 := 0;
  20.       end loop;
  21.       Put_Line("Task 1 critical section");
  22.       C1 := 1;
  23.     end loop;
  24.   end T1;
  25.  
  26.   task T2;
  27.   task body T2 is
  28.   begin
  29.     loop
  30.       Put_Line("Task 2 idling");
  31.       C2 := 0;
  32.       loop 
  33.         exit when C1 /= 0; 
  34.         C2 := 1;
  35.         Put_Line("Task 2 reset variable");
  36.         C2 := 0;
  37.       end loop;
  38.       Put_Line("Task 2 critical section");
  39.       C2 := 1;
  40.     end loop;
  41.   end T2;
  42.  
  43. begin
  44.   null;
  45. end Fourth;
  46.